#include <pthread.h>

class ThreadFactory {
public:
    ThreadFactory() = default;

    virtual ~ThreadFactory() = default;

    ThreadFactory(const ThreadFactory &) = delete;

public:
    virtual pthread_t &createThread(void *(task_function)(void *), void *args) = 0;
};
